package com.pet.system.mapper;

import com.pet.system.domain.PetProduct;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 产品Mapper接口
 *
 * @author pet
 * @date 2022-10-09
 */
public interface PetProductMapper {
    /**
     * 查询产品
     *
     * @param id 产品主键
     * @return 产品
     */
    public PetProduct selectPetProductById(Long id);

    /**
     * 查询产品图片
     *
     * @param id 产品主键
     * @return 产品
     */
    PetProduct selectPetProductImageById(Long id);

    /**
     * 根据品牌查商品
     *
     * @param brandId
     * @return
     */
    List<PetProduct> selectPetProductByBrandId(Long brandId);

    /**
     * 查询产品列表
     *
     * @param petProduct 产品
     * @return 产品集合
     */
    public List<PetProduct> selectPetProductList(PetProduct petProduct);

    /**
     * 新增产品
     *
     * @param petProduct 产品
     * @return 结果
     */
    public int insertPetProduct(PetProduct petProduct);

    /**
     * 修改产品
     *
     * @param petProduct 产品
     * @return 结果
     */
    public int updatePetProduct(PetProduct petProduct);

    /**
     * 上传图片
     *
     * @param petProduct
     * @return
     */
    public int updatePetProductImage(PetProduct petProduct);

    /**
     * 删除产品
     *
     * @param id 产品主键
     * @return 结果
     */
    public int deletePetProductById(Long id);

    /**
     * 批量删除产品
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePetProductByIds(Long[] ids);

    /**
     * 根据类目和品牌获取产品列表
     *
     * @param petProduct petProduct
     * @return 结果
     */
    List<PetProduct> selectPetProductListWx(PetProduct petProduct);

    PetProduct selectPetProduct(PetProduct petProductParam);

    /**
     * 登录人品牌表中添加的类目
     *
     * @param userId   登录人
     * @param category 类目
     * @return 结果
     */
    List<String> selectPetBrandCategoryBrandList(@Param("userId") Long userId, @Param("category") String category);
}
